﻿using CadeMeuMedico.Models;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;

namespace CadeMeuMedico.Controllers
{
    public class UsuariosCrudController : BaseController
    {
        private CadeMeuMedicoDBEntities db = new CadeMeuMedicoDBEntities();

        public ActionResult Index()
        {
            var usuarios = db.Usuarios;
            return View(usuarios);
        }

        public ActionResult Adicionar()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Adicionar(Usuarios usuarios)
        {
            if (ModelState.IsValid)
            {
                string senhaCriptografada = FormsAuthentication.HashPasswordForStoringInConfigFile(usuarios.Senha, "sha1");
                usuarios.Senha = senhaCriptografada;
                db.Usuarios.Add(usuarios);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(usuarios);
        }

        public ActionResult Editar(int id)
        {
            Usuarios usuarios = db.Usuarios.Find(id);
            return View(usuarios);
        }

        [HttpPost]
        public ActionResult Editar(Usuarios usuarios)
        {
            if (ModelState.IsValid)
            {
                string senhaCriptografada = FormsAuthentication.HashPasswordForStoringInConfigFile(usuarios.Senha, "sha1");
                usuarios.Senha = senhaCriptografada;
                db.Entry(usuarios).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(usuarios);
        }

        [HttpPost]
        public string Excluir(int id)
        {
            try
            {
                Usuarios usuarios = db.Usuarios.Find(id);
                db.Usuarios.Remove(usuarios);
                db.SaveChanges();
                return Boolean.TrueString;
            }
            catch
            {
                return Boolean.FalseString;
            }
        }
    }
}
